Binary Search
Binary search(二分搜尋) 是一種在「已排序的陣列」中快速找值的方法。
它的想法是:
不用一個一個找,而是每次都把搜尋範圍砍一半!
假設我們要在 [1, 3, 5, 7, 9, 11] 找數字 7:
left = 0
right = arr.length - 1
mid = Math.floor((left + right) / 2)
如果 arr[mid] === target → 找到了!
如果 arr[mid] < target → 答案在右邊 → left = mid + 1
如果 arr[mid] > target → 答案在左邊 → right = mid - 1
重複直到找到或範圍空了 (left > right)
- 優點:時間複雜度:O(log n),相較於 linear search 的 O(n) 快了不少。
- 缺點:一定要先排序才能用。